/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.configv2.impl;

import org.eclipse.emf.common.notify.NotificationChain;

import org.eclipse.emf.common.util.EMap;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.InternalEObject;

import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;

import org.eclipse.emf.ecore.util.BasicFeatureMap;
import org.eclipse.emf.ecore.util.EcoreEMap;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.InternalEList;

import org.taobao.ibatiside.model.configv2.Configv2Package;
import org.taobao.ibatiside.model.configv2.DataSourceType;
import org.taobao.ibatiside.model.configv2.DocumentRoot;
import org.taobao.ibatiside.model.configv2.PropertiesType;
import org.taobao.ibatiside.model.configv2.PropertyType;
import org.taobao.ibatiside.model.configv2.ResultObjectFactoryType;
import org.taobao.ibatiside.model.configv2.SettingsType;
import org.taobao.ibatiside.model.configv2.SqlMapConfigType;
import org.taobao.ibatiside.model.configv2.SqlMapType;
import org.taobao.ibatiside.model.configv2.TransactionManagerType;
import org.taobao.ibatiside.model.configv2.TypeAliasType;
import org.taobao.ibatiside.model.configv2.TypeHandlerType;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Document Root</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getMixed <em>Mixed</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getDataSource <em>Data Source</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getProperties <em>Properties</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getProperty <em>Property</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getResultObjectFactory <em>Result Object Factory</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getSettings <em>Settings</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getSqlMap <em>Sql Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getSqlMapConfig <em>Sql Map Config</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getTransactionManager <em>Transaction Manager</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getTypeAlias <em>Type Alias</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.impl.DocumentRootImpl#getTypeHandler <em>Type Handler</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class DocumentRootImpl extends EObjectImpl implements DocumentRoot {
	/**
	 * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMixed()
	 * @generated
	 * @ordered
	 */
	protected FeatureMap mixed;

	/**
	 * The cached value of the '{@link #getXMLNSPrefixMap() <em>XMLNS Prefix Map</em>}' map.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXMLNSPrefixMap()
	 * @generated
	 * @ordered
	 */
	protected EMap<String, String> xMLNSPrefixMap;

	/**
	 * The cached value of the '{@link #getXSISchemaLocation() <em>XSI Schema Location</em>}' map.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXSISchemaLocation()
	 * @generated
	 * @ordered
	 */
	protected EMap<String, String> xSISchemaLocation;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DocumentRootImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return Configv2Package.Literals.DOCUMENT_ROOT;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public FeatureMap getMixed() {
		if (mixed == null) {
			mixed = new BasicFeatureMap(this, Configv2Package.DOCUMENT_ROOT__MIXED);
		}
		return mixed;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EMap<String, String> getXMLNSPrefixMap() {
		if (xMLNSPrefixMap == null) {
			xMLNSPrefixMap = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, Configv2Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
		}
		return xMLNSPrefixMap;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EMap<String, String> getXSISchemaLocation() {
		if (xSISchemaLocation == null) {
			xSISchemaLocation = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, Configv2Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
		}
		return xSISchemaLocation;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DataSourceType getDataSource() {
		return (DataSourceType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__DATA_SOURCE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetDataSource(DataSourceType newDataSource, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__DATA_SOURCE, newDataSource, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setDataSource(DataSourceType newDataSource) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__DATA_SOURCE, newDataSource);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PropertiesType getProperties() {
		return (PropertiesType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__PROPERTIES, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetProperties(PropertiesType newProperties, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__PROPERTIES, newProperties, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setProperties(PropertiesType newProperties) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__PROPERTIES, newProperties);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PropertyType getProperty() {
		return (PropertyType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__PROPERTY, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetProperty(PropertyType newProperty, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__PROPERTY, newProperty, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setProperty(PropertyType newProperty) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__PROPERTY, newProperty);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ResultObjectFactoryType getResultObjectFactory() {
		return (ResultObjectFactoryType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetResultObjectFactory(ResultObjectFactoryType newResultObjectFactory, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY, newResultObjectFactory, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setResultObjectFactory(ResultObjectFactoryType newResultObjectFactory) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY, newResultObjectFactory);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SettingsType getSettings() {
		return (SettingsType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__SETTINGS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSettings(SettingsType newSettings, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__SETTINGS, newSettings, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSettings(SettingsType newSettings) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__SETTINGS, newSettings);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SqlMapType getSqlMap() {
		return (SqlMapType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__SQL_MAP, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSqlMap(SqlMapType newSqlMap, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__SQL_MAP, newSqlMap, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSqlMap(SqlMapType newSqlMap) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__SQL_MAP, newSqlMap);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SqlMapConfigType getSqlMapConfig() {
		return (SqlMapConfigType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__SQL_MAP_CONFIG, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSqlMapConfig(SqlMapConfigType newSqlMapConfig, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__SQL_MAP_CONFIG, newSqlMapConfig, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSqlMapConfig(SqlMapConfigType newSqlMapConfig) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__SQL_MAP_CONFIG, newSqlMapConfig);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TransactionManagerType getTransactionManager() {
		return (TransactionManagerType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__TRANSACTION_MANAGER, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetTransactionManager(TransactionManagerType newTransactionManager, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__TRANSACTION_MANAGER, newTransactionManager, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTransactionManager(TransactionManagerType newTransactionManager) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__TRANSACTION_MANAGER, newTransactionManager);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TypeAliasType getTypeAlias() {
		return (TypeAliasType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__TYPE_ALIAS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetTypeAlias(TypeAliasType newTypeAlias, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__TYPE_ALIAS, newTypeAlias, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeAlias(TypeAliasType newTypeAlias) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__TYPE_ALIAS, newTypeAlias);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TypeHandlerType getTypeHandler() {
		return (TypeHandlerType)getMixed().get(Configv2Package.Literals.DOCUMENT_ROOT__TYPE_HANDLER, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetTypeHandler(TypeHandlerType newTypeHandler, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Configv2Package.Literals.DOCUMENT_ROOT__TYPE_HANDLER, newTypeHandler, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeHandler(TypeHandlerType newTypeHandler) {
		((FeatureMap.Internal)getMixed()).set(Configv2Package.Literals.DOCUMENT_ROOT__TYPE_HANDLER, newTypeHandler);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
		switch (featureID) {
			case Configv2Package.DOCUMENT_ROOT__MIXED:
				return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
			case Configv2Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs);
			case Configv2Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs);
			case Configv2Package.DOCUMENT_ROOT__DATA_SOURCE:
				return basicSetDataSource(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__PROPERTIES:
				return basicSetProperties(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__PROPERTY:
				return basicSetProperty(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY:
				return basicSetResultObjectFactory(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__SETTINGS:
				return basicSetSettings(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP:
				return basicSetSqlMap(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP_CONFIG:
				return basicSetSqlMapConfig(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__TRANSACTION_MANAGER:
				return basicSetTransactionManager(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__TYPE_ALIAS:
				return basicSetTypeAlias(null, msgs);
			case Configv2Package.DOCUMENT_ROOT__TYPE_HANDLER:
				return basicSetTypeHandler(null, msgs);
		}
		return super.eInverseRemove(otherEnd, featureID, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case Configv2Package.DOCUMENT_ROOT__MIXED:
				if (coreType) return getMixed();
				return ((FeatureMap.Internal)getMixed()).getWrapper();
			case Configv2Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				if (coreType) return getXMLNSPrefixMap();
				else return getXMLNSPrefixMap().map();
			case Configv2Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				if (coreType) return getXSISchemaLocation();
				else return getXSISchemaLocation().map();
			case Configv2Package.DOCUMENT_ROOT__DATA_SOURCE:
				return getDataSource();
			case Configv2Package.DOCUMENT_ROOT__PROPERTIES:
				return getProperties();
			case Configv2Package.DOCUMENT_ROOT__PROPERTY:
				return getProperty();
			case Configv2Package.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY:
				return getResultObjectFactory();
			case Configv2Package.DOCUMENT_ROOT__SETTINGS:
				return getSettings();
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP:
				return getSqlMap();
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP_CONFIG:
				return getSqlMapConfig();
			case Configv2Package.DOCUMENT_ROOT__TRANSACTION_MANAGER:
				return getTransactionManager();
			case Configv2Package.DOCUMENT_ROOT__TYPE_ALIAS:
				return getTypeAlias();
			case Configv2Package.DOCUMENT_ROOT__TYPE_HANDLER:
				return getTypeHandler();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case Configv2Package.DOCUMENT_ROOT__MIXED:
				((FeatureMap.Internal)getMixed()).set(newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				((EStructuralFeature.Setting)getXMLNSPrefixMap()).set(newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				((EStructuralFeature.Setting)getXSISchemaLocation()).set(newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__DATA_SOURCE:
				setDataSource((DataSourceType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__PROPERTIES:
				setProperties((PropertiesType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__PROPERTY:
				setProperty((PropertyType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY:
				setResultObjectFactory((ResultObjectFactoryType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__SETTINGS:
				setSettings((SettingsType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP:
				setSqlMap((SqlMapType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP_CONFIG:
				setSqlMapConfig((SqlMapConfigType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__TRANSACTION_MANAGER:
				setTransactionManager((TransactionManagerType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__TYPE_ALIAS:
				setTypeAlias((TypeAliasType)newValue);
				return;
			case Configv2Package.DOCUMENT_ROOT__TYPE_HANDLER:
				setTypeHandler((TypeHandlerType)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case Configv2Package.DOCUMENT_ROOT__MIXED:
				getMixed().clear();
				return;
			case Configv2Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				getXMLNSPrefixMap().clear();
				return;
			case Configv2Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				getXSISchemaLocation().clear();
				return;
			case Configv2Package.DOCUMENT_ROOT__DATA_SOURCE:
				setDataSource((DataSourceType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__PROPERTIES:
				setProperties((PropertiesType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__PROPERTY:
				setProperty((PropertyType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY:
				setResultObjectFactory((ResultObjectFactoryType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__SETTINGS:
				setSettings((SettingsType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP:
				setSqlMap((SqlMapType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP_CONFIG:
				setSqlMapConfig((SqlMapConfigType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__TRANSACTION_MANAGER:
				setTransactionManager((TransactionManagerType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__TYPE_ALIAS:
				setTypeAlias((TypeAliasType)null);
				return;
			case Configv2Package.DOCUMENT_ROOT__TYPE_HANDLER:
				setTypeHandler((TypeHandlerType)null);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case Configv2Package.DOCUMENT_ROOT__MIXED:
				return mixed != null && !mixed.isEmpty();
			case Configv2Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				return xMLNSPrefixMap != null && !xMLNSPrefixMap.isEmpty();
			case Configv2Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				return xSISchemaLocation != null && !xSISchemaLocation.isEmpty();
			case Configv2Package.DOCUMENT_ROOT__DATA_SOURCE:
				return getDataSource() != null;
			case Configv2Package.DOCUMENT_ROOT__PROPERTIES:
				return getProperties() != null;
			case Configv2Package.DOCUMENT_ROOT__PROPERTY:
				return getProperty() != null;
			case Configv2Package.DOCUMENT_ROOT__RESULT_OBJECT_FACTORY:
				return getResultObjectFactory() != null;
			case Configv2Package.DOCUMENT_ROOT__SETTINGS:
				return getSettings() != null;
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP:
				return getSqlMap() != null;
			case Configv2Package.DOCUMENT_ROOT__SQL_MAP_CONFIG:
				return getSqlMapConfig() != null;
			case Configv2Package.DOCUMENT_ROOT__TRANSACTION_MANAGER:
				return getTransactionManager() != null;
			case Configv2Package.DOCUMENT_ROOT__TYPE_ALIAS:
				return getTypeAlias() != null;
			case Configv2Package.DOCUMENT_ROOT__TYPE_HANDLER:
				return getTypeHandler() != null;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (mixed: ");
		result.append(mixed);
		result.append(')');
		return result.toString();
	}

} //DocumentRootImpl
